package leetcode.array;

import java.util.Arrays;
import java.util.HashSet;
import java.util.PriorityQueue;

/**
 * @author Cheng Jun
 * Description: 给你一个非空数组，返回此数组中 第三大的数 。如果不存在，则返回数组中最大的数。
 * @version 1.0
 * @date 2022/2/19 9:22
 */
public class thirdMax {

    // 思路：排序后，倒序遍历
    // 时间复杂度 O(nlogn)
    public static int thirdMax(int[] nums) {
        Arrays.sort(nums);
        int res = nums[nums.length - 1];
        for (int i = nums.length - 1, count = 1; i > 0; i--) {
            if (nums[i] != nums[i - 1]) {
                res = nums[i - 1];
                count++;
            }
            if (count == 3) {
                return res;
            }
        }
        return nums[nums.length - 1];
    }

}
